Zadanie - Interpretability - Mateusz Sperkowski

Zadanie interpretowalności w sieciach neuronowych jest coraz ważniejsze, wraz z coraz częstszym z wprowadzaniem modeli do produkcji, oraz coraz większą odpowiedzialnością kładzioną na nich. Ułatwienie zrozumienia na podstawie czego dana sieci tworzy swoje predykcje umożliwia wykrycie i poprawienie stronniczości modelu, jak i innych błędów. W artykule (Teach, Randy L., and Edward H. Shortliffe. "An analysis of physician attitudes regarding computer-based clinical consultation systems." Computers and Biomedical Research 14.6 (1981): 542-558.) wyjaśnienie decyzji wsparcia komputerowego zostało uznane przez lekarzy za najważniejszą funkcję, co jest łatwo zrozumiałe biorąc pod uwagę jak dużą opowiedzialność ponoszą w swojej dziedzinie.

VGG19

Sieć ta została stworzona w ramach artykułu (Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556 (2014), https://arxiv.org/abs/1409.1556). Przedstawia ona zastosowanie bardzo głębokiej sieci konwolucyjnej (19 warstw, stąd nazwa VGG19), osiągającej lepsze wyniki niż ówczesne 'state of the art', czyli najlepsze modele. Artykuł został napisany na rzecz uczestnictwa autorów w ImageNet 2014 Challenge, gdzie zdobyli 1 i 2 miejsce odpowiednio w zadaniu lokalizacji i klasyfikacji. Dodatkowo sieć ta według autorów jest generalizowalna do innych zbiorów danych niż ImageNet.

Wykonane wzorując się na notebook'u z zajęć: https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/5.4-visualizing-what-convnets-learn.ipynb (https://keras.io/examples/vision/grad_cam/)

Postanowiłem skupić się na sprawdzeniu wynikow dla różnych zdjęć axolotlów, jak i w przypadku błędnej predykcji porównianiu ich z wynikiem dla zwierzęcia z wspomnianej błędnej predykcji. Dzięki metodom XAI powinno ułatwić nam zauważenie czemu w tym przypadku wyszedł błędny wynik.

Źródła zdjęć:

https://www.library.pima.gov/wp-content/uploads/sites/6/2017/10/gila-monster.jpg

https://commons.wikimedia.org/wiki/File:Axolotl_ganz.jpg

https://www.everythingreptiles.com/types-of-axolotl-colors/

https://nbc-2.com/wp-content/uploads/2020/09/green-iguana-1024x576.jpg

GRAD-CAM Explanation

LIME Explanation

Following this tutorial: https://github.com/marcotcr/lime/blob/master/doc/notebooks/Tutorial%20-%20Image%20Classification%20Keras.ipynb

Wnioski

Mozliwe ze za wyniki niepoprawne odpowiadaja rzadsze warianty kolorystyki i ułożenia ciała. Uważam, że prawdopodobnie istnieje 'bias', gdzie w wypadku zwierząt większość zdjęć robi się w podobnych ułożeniach ciał osobników z tego gatunku. Na przykładzie axolotla, często zdjecie robi się z frontu, więc bardzo możliwe że w zbiorze treningowym jest duża ilość danych właśnie takich, czysto z powodu dostępu do fotografii. Również ubarwienie różni się znacznie, gdzie część ubarwień jest rzadsza od innych. Może to mieć istotny wpływ na wynik sieci, a niestandardowe ułożenia mogą powodować przypisanie do innej kategorii. Oczywiście idea tego problemu przenosi się na wszystkie możliwe cele klasyfikacji zdjęć. Być może za pomocą bardzo zaawansowanych metod 'Data Augmentation' (Mikołajczyk, Agnieszka, and Michał Grochowski. "Data augmentation for improving deep learning in image classification problem." 2018 international interdisciplinary PhD workshop (IIPhDW). IEEE, 2018.) możliwe byłoby częściowe rozwiązanie tego problemu.

Wyjaśnianie modelów predykcji zdjęć, daje nam względnie zrozumiałe dla człowieka spojrzenie na podjętą decyzję.